Template-based remote/local file selection techniques for modular backup and migration

ABSTRACT

File selection techniques that can handle overlapping module contexts provide flexible and reversible backup, restore, migration, deployment and synchronization operations. Both remote (administrative) control and local (user) control of the file selection are provided. Application and configuration specific templates are provided to a user from the remote administrator for further customization by selecting or de-selecting configurations, applications and/or individual files or configuration entries. The templates may be controlled geographically by the IP address or identity associated with the user. A user&#39;s interaction with the customization is saved and the order of changes is maintained, so that when the templates are updated, the user&#39;s customizations can be re-applied. The administrator may override user settings based on rules, which may also be geographically determined. The file selection may also be altered based on media type and location, e.g., local backup vs. server backup.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention is related to computer management software, andmore particularly to template-based file selection techniques providingremote/local file selection for modular backup and migration.

2. Description of Related Art

Application and operating system backup and migration tools, as well asother tools such as synchronization mechanisms provide file selectioninterfaces for selecting sets of files and configuration entries forbackup, restore, synchronization, deployment and migration ofapplications and system components. On a workstation level, a user oradministrator typically selects or de-selects directory tree levelsand/or individual files to include in a backup, migration orsynchronization session. The configuration is typically saved at thelocation of the backup program, whether located at a central local-areanetwork backup point, or on the individual workstation. More recentsystems have the ability to backup/migrate configuration informationsuch as configuration files and registry entries. Upon restore, backupalgorithms generally offer the option to deselect files that arecontained in a backup, so that some files contained on the back are notover-written.

Applications generally have large numbers of files and configurationentries that make it difficult for a user or administrator to selectjust the files associated with an application. Further, the particularfiles and the names of files associated with an application typicallyvaries from version to version of an application. It would be desirablefor an administrator or end user to easily select files associated withan application, in order to accomplish the above-listed tasks withouthaving to generate a list of files themselves, which in some cases is atedious and time-consuming task requiring a high level of skill andoften a large amount of trial-and-error or sophisticated analysis.Further, the typical backup or system configuration strategy is eithercontrolled by an administrator or the local user, but not both, eventhough it would be desirable to provide end-user controlled fileselection while receiving some automatic protection and assistance fromthe administrative level.

Further, present administrative backup and deployment systems typicallyhave a uniform behavior with respect to workstation backup anddeployment of software, while differing geographical or user needs maydictate differences requiring adjustment for individual workstations orusers. Also, depending on the destination of a backup, certain files maybe desirable for backup, while other may not be, such as when a largenumber or large-sized personal files of a user are present on a systemand backup is not needed for ensuring continuity of business operations.In such circumstances, it would be desirable to provide the user aflexible and friendly backup environment, while ensuring that such filesdo not waste valuable server resources.

BRIEF SUMMARY OF THE INVENTION

The invention is embodied in a computer-performed method, computerprogram product and computer system that provides file selection forbackup, deployment, migration, restore and synchronization based onapplication-associated templates. Upon starting a backup, deployment,migration, restore or synchronization task, or upon generating aninitial profile to be used repeatedly for such a task, the user ispresented with a selection between pre-configured modules that can beselected or de-selected from templates to provide a file selectionprofile. The modules may be application level modules, or fullconfiguration modules representing one of a number of pre-determinedconfigurations that generally include multiple applications. The usermay further customize the file selection not only byselecting/de-selecting configuration(s) and/or applications, but byselecting and de-selecting individual file tree levels/directories andfiles, along with individual configuration entries to generate auser/workstation specific file selection profile.

Multi-point and updateable file selection management can be provided bystoring a user's customization of the file selection, including an orderof customization operation, so that when an administrative update ismade to the configuration, application or other selection templates, thecustomization can be applied to the updated templates to generate a newfile selection profile. The templates are generally provided as feeds tothe various workstations, and particular feed selection may be madebased on geographic criteria, which may be IP address-based and/oruser-based.

The file selection engine and file copying engine is provided also as afeed-delivered object, which may be a JAVA object (JAVA is a trademarkof Sun Microsystems, Inc.) or other deliverable executable/interpretableengine. The file copying engine may be perform differently depending onthe destination/source of the files, e.g., if the destination/source isa backup server, certain files may be excluded from the backup orvice-versa, whereas if the destination/source is local media, adifferent filter criteria (or no filtering) may be employed.

The foregoing and other objectives, features, and advantages of theinvention will be apparent from the following, more particular,description of the preferred embodiment of the invention, as illustratedin the accompanying drawings.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING

The novel features believed characteristic of the invention are setforth in the appended claims. The invention itself, however, as well asa preferred mode of use, further objectives, and advantages thereof,will best be understood by reference to the following detaileddescription of the invention when read in conjunction with theaccompanying Figures, wherein like reference numerals indicate likecomponents, and:

FIG. 1 is a block diagram illustrating a networked computer system inwhich techniques according to an embodiment of the present invention arepracticed.

FIG. 2 is an organizational and flow diagram of a file selection andtransfer process within the system of FIG. 1.

FIG. 3 is an organizational and flow diagram of a template updateprocess within the system of FIG. 1.

FIG. 4 is a pictorial diagram depicting a property page of a userinterface for controlling a template and application selection processin accordance with an embodiment of the present invention.

FIG. 5 is a flow chart of a file selection method in accordance with anembodiment of the present invention.

FIG. 6 is a flow chart of a template update method in accordance with anembodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

The present invention relates to file selection techniques that areapplied to backup, migration, synchronization, deployment and otherforms of file transfer between systems. The file selection techniques ofthe present invention provide for pre-defined templates that generallycombine sets of files and configuration entries associated byapplication, but also provide for user-defined templates that combinethe sets of application-associated files without requiring use of apre-defined template. The user is permitted to modify the file selectionspecified by the template or user-defined set of application files, byselecting or de-selecting individual directories or files in additionto, or to be removed from the file selection specified by the template.The user may also specify particular file types (e.g., by MIME type orextension) for inclusion in or exclusion from the backup. The geographiclocation of the workstation, IP address, user identity, user groupmembership, workstation identity or other identifier associated with auser or the workstation may be used to determine one or more templatesfed to the a workstation via an RSS feed or other transfer mechanism.The user's interaction with or definition of the current template isstored as a set of changes, which are ordered according to the order ofentry. As templates are updated, which is generally accomplished by adifferential update object, the stored changes are applied to theupdated template, so that user-customization is preserved. Both attendedand unattended backups and other processes may be supported by thetechniques of the present invention, with the last version of acustomized template used when performing automatic backups or othertransfers.

Administrative override rules, which are also generally provided by anRSS feed or other transfer mechanism, may be applied to the final listof files selected by the above-described process to force the inclusionor exclusion of specific file, directories and/or file types. Thespecific administrative override rules applied may also be selectedaccording to the geographic location of the workstation, IP address,user identity, user group membership, workstation identity or otheridentifier associated with a user or the workstation and may also bevaried or omitted depending on the destination of the file transfer. Forexample, if a user is generating a local backup to removable media, userselection or de-selection of any file for backup may be permitted,whereas certain file types or specific files and directories may beomitted from the file list according to administrative rules if thebackup destination is remote storage managed by a server in order toreduce storage and bandwidth requirements, and to meet internaladministrative standards. Certain file types and/or directories may alsobe required in the file transfer list if the backup destination isremote storage, so that a minimum level of accepted backup ismaintained. The user may be presented with a final list of selectedfiles and directories as modified by the administrative rules, as adisplay or user-interface inviting further modification, or theapplication of administrative overrides may be automatic and theresultant file/directory list might not be displayed to the user.

Referring now to FIG. 1, a networked computer system in which anembodiment of the present invention is practiced is depicted in a blockdiagram. An administrative server 20 includes a server processor SCPUcoupled to a server memory SMEM that contains program instructions forimplementing a portion of a system in accordance with an embodiment ofthe present invention and forming a computer-program product inaccordance with another embodiment of the present invention.Administrative server 20 is coupled to a number of workstation computers10, which in the depicted embodiment each include a workstationprocessor CPU coupled to a workstation memory MEM that contains programinstructions for implementing another portion of the system and forminga computer-program product in accordance with another embodiment of thepresent invention. Workstation computers 10 are also depicted asincluding a graphical display Display and input devices Input Devices,such as mice and keyboards, for interacting with a user interface asdescribed in further detail below. Workstation computers 10 are coupledto administrative server 20 over network, which may include wirelesslocal area networks (WLANs), wired local-area networks (LANs), wide-areanetworks (WANs) or any other suitable interconnection that providescommunication between administrative server 20 and workstation computers10. Further, the present invention concerns file selection and transfertechniques that are not limited to a specific computer systemconfiguration or requiring a network at all, as some embodiments of thepresent invention are applicable to individual computer systems, and thenetwork-informed embodiments of the present invention retain somefunctionality even in off-line configurations, such as when generating alocal backup at a workstation 10 based on templates provided fromadministrative server 20. Finally, the specification of anadministrative server 20 and workstation 10 and the location of theirspecific memories MEM and SMEM does not imply a specific client-serverrelationship or hierarchical organization, as the techniques of thepresent invention may be employed in distributed systems in which theadministrative role, if employed at all, is defined by an identity andcontrol privilege, rather than by association with a particular locationor hardware type.

Referring now to FIG. 2, an organization and information flow within thesystem of FIG. 1 is illustrated. Administrative server 20 includes atemplate database 22 from which template objects are transferred toworkstation computer 10 via RSS feeds or another transfer technique. Thespecific template object or objects provided to workstation computer 10may be determined in conformity with the geographic location of theworkstation, IP address, user identity, user group membership,workstation identity or other identifier associated with a user orworkstation computer 10. Alternatively, all template objects may be madeavailable for user-selection, or all template objects may be downloadedand selection made by user identity determined by the user's loginprofile, group membership or privilege level. The template objects alsoinclude application definitions, from which the template objects buildfile selection profiles, as the template objects generally specifycollections of applications and other files, and the application fileand configuration entry selections are more easily maintained asseparate objects. One of the template objects is selected either by oneof the above-described identification processes, or by the user viainput provided to a user interface. A “blank” template is also providedfor generating a user-defined template. The user is provided withcontrol of the selection of applications included in the template,modification of the directories and files selected by the template via atree control or other mechanism, selection/de-selection of particularfile types by MIME type or file extension. The user is also providedwith the ability to search for files for selection, such as by textstring, filenames with wildcards, and other file search mechanisms ascommonly known in the art. While objects are used in the exemplaryembodiment to implement templates and other features such as applicationdefinitions, it is not necessary to use object-oriented programming toimplement any of the techniques of the present invention. Templates,application definitions and other features of the present invention suchas administrative overrides can alternatively be provided as XML filescontaining data fields or rules that may or may not be associated withmethods. Further the above-mentioned data structures may be provided assimple textual or binary data files or database objects which are readand operated on using separately packaged program code.

Any user input that modifies the template is applied to the template togenerate a local template copy 13, which is used along with theassociated selected application definitions 11 to generate a profile 16that specifies the files to transfer. Application definitions 11 arealso objects provided by and maintained via feeds from administrativeserver 20, but as described above, application definitions 11 may beimplemented as other forms of data. The user input is also recorded to atemplate change record 14, which provides local storage of the mannerand order in which the user applied modifications to a pre-definedtemplate or defined a user-defined template. Template change record 14is used to preserve user-customization of the file selection, so thatwhen templates are updated, the user's changes can be reapplied asdescribed in further detail below. Once profile 16 is built,administrative overrides, which are supplied as RSS feeds fromadministrative server 20 are applied to a filter process 18 that changesthe file selection in accordance with administrative requirements. WhileRSS feeds are used in the exemplary embodiment to transfer objects anddata between workstation computers 10 from administrative processes,other feed techniques or transfer techniques may be employed, includinglocal software installation from distribution media. While objects areused in the exemplary embodiment to implement templates and otherfeatures such as application definitions, it is not necessary to useobject-oriented programming to implement any of the techniques of thepresent invention. Templates, application definitions and other featuresof the present invention such as administrative overrides canalternatively be provided as XML files containing data fields or rulesthat may or may not be associated with methods. Further theabove-mentioned data structures may be provided as simple textual orbinary data files or database objects which are read and operated onusing separately packaged program code. Filter process 18 may also beresponsive to the destination of the file transfer as described above.Illustrated transfer destinations are remote storage 24 managed byadministrative server 20 or local removable storage 12, which may be aUSB FLASH drive, recordable optical media or other storage type. Otherstorage locations may be managed by the present invention and theillustrated storage options are exemplary only, and are not intended tolimit the types or location of storage that may be employed inembodiments of the present invention. Once the selected files andconfiguration entries are determined, the actual files andconfigurations are transferred to their destination, e.g., localremovable storage 12 or remote storage 24.

Referring now to FIG. 3, another organization and information flowwithin the system of FIG. 1 is illustrated. When a template and/orapplication definition is updated, a differential update object is fedfrom administrative server 20 to workstation computer 10. If the updateincludes only application definition objects, application definitions 11are overwritten with the updated versions. However, when a templateobject is updated (to add/remove applications or specific directories orfiles), then the latest template change record 14 is retrieved andapplied in the stored order of user entry, to modify the updatedtemplate. The resulting template is stored as local template copy 13.Changes from template change record are applied after the differentialupdate to the corresponding template object is accomplished. Thetemplate objects and application definitions described above areimplemented as XML (extensible markup language) objects, so thatgeneration of rules and differential updates are easily effected.However, other types of data/program code implementations are usable toimplement the same functionality, and are contemplated as alternativesthat fall within the scope of the present invention.

Referring now to FIG. 4, a user interface screen for providing userinput to controlling a template and application selection process inaccordance with an embodiment of the invention is shown. The depicteddisplay shows a set of property pages, with the active page displayingan application and template selection page. Other property pages includethe above-described file/folder selection, file type selection andsearch user inputs, which are implemented as known in the art. However,in order to control the file selection process of the present invention,it is necessary to provide for additional user input. Such user input isprovided by a template selection menu 34, from which predeterminedtemplates are selectable. Generally, a single template is selected foreach workstation, but multiple template embodiments are possible, withmerger of modular application group selections, for example. A“user_defined” option is selected, in which no applications or otherfiles/configuration items are initially selected (or a mandatory baseconfiguration can be used as an alternative to a “blank” template). Theselectable templates may be restricted by the geographical or otherworkstation/user identifiers as described above, which may be effectedby displaying only a set of template objects that were downloaded to thecorresponding workstation based on workstation/user identification.Template selection menu 34 may be omitted if template selection is madeautomatically, e.g., in implementations where a single template isdownloaded per workstation. A user-defined template option can then beselected with a single checkbox that disables/enables use of thepredetermined template.

An application selection menu 36 provides for either modification of apre-selected set of applications specified by the selected predeterminedtemplate (or the modified local template after the user input hasmodified the template) or generation of a user-defined template, whichwill generally start with no applications selected. Although selectionof an entry in application selection menu 36 will specify certain filesfor backup or other file transfer, the user may modify the set of filesusing the other available property page tabs, as well as by selectingparticular other folders specified in predetermined template foldersfields 32. The folders/directory paths specified in template foldersfields 32 are generally common paths forbackup/migration/synchronization for any user, such as the defaultdocuments folder and the desktop folder. An “ADD” and/or “REMOVE” buttoncan be included to change the template folders fields 32, but sinceother folder paths can be included in the file selection via the “AllFiles and Folders” property sheet, and the predetermined templatefolders fields 32 can be de-selected, such functionality is not neededon the template and application selection page. Therefore, in thedepicted embodiment, the folders specified by the selected predeterminedtemplate are shown as static members.

Referring now to FIG. 5, a file selection method in accordance with anembodiment of the present invention is depicted in a flowchart. First,the workstation is scanned to obtain a file index (step 40) and a userinterface is presented showing the predefined template and applicationselection options (step 41). If the user changes the template orapplication selections (step 42), then the local template is changed(step 43). Next, directories and then files are selected according tothe current local template (step 44). In each of the above describedfile and directory selection modification techniques, consistency mustbe maintained with respect to application of directory and fileselection order. In particular, selection of directories is performedfirst, with selection/de-selection of individual files performed second.Since selection/de-selection of a directory potentially impacts theselection status of all of the files in the directory, the directoryoperation must be performed first to avoid undoing individual fileselections/de-selections. Next a user interface is displayed showingselected directories and files according to the current local template(step 45). While step 45 is described in a linear sense with respect tothe flowchart, it is understood that the user may be required toactivate a particular property page or menu item, such as the “All Filesand Folders” property tab of FIG. 4, in order to view the actual filesand folders selected by the local template. Therefore, if a user wishesonly to select particular applications, or to apply a particular ordefault template without modifying files or directory paths specifiedthereby, it is not necessary to interact with the file/folderselection/de-selection interface at all.

Next, if the user modifies the selections (decision 46) the localtemplate is further modified and the file list is also modified removingentries that were de-selected and searching for entries added by theuser modifications (step 47). At this point user changes to the templateare stored in a cumulative ordered list, so that the user-customizationis preserved for application to later updated templates (step 48). Next,any administrative overrides (decision 49) are applied to the file list(step 50), and as mentioned above, administrative overrides can beconditionally applied based on workstation/user identifiers and/or thedestination or media type of the file transfer. Finally, the finalselections may be displayed and the user may be prompted to make anyfurther changes, or the transfer may proceed without user intervention(step 51).

Referring now to FIG. 6, a template update method in accordance with anembodiment of the present invention is depicted in a flowchart. When atemplate update is received (step 60), the update is applied to a localcopy of the predetermined template (step 61). (The local copy of thepredetermined template is not the user-modified local template, but thepredefined starting-point template.) If stored user changes are presentfor the template (step 62), then the local copy of the template, i.e.,the user-modified template, is generated by applying the stored changesto the updated template from step 61 in the original order in which theuser made the changes to the predetermined template prior to the update(step 63). As mentioned above, preserving the order is necessary toensure consistent results in applying the stored user input.

While the invention has been particularly shown and described withreference to the preferred embodiments thereof, it will be understood bythose skilled in the art that the foregoing and other changes in form,and details may be made therein without departing from the spirit andscope of the invention.

1. A computer-performed method for selecting files and/or configuration entries for backup, migration, restoration or synchronization comprising: reading a template specifying one or more applications, wherein a collection of files is specified for transfer between a workstation and a storage location for each of the one or more applications; accepting multiple user inputs modifying the collection of files to produce a local template specifying a modified collection of files; storing a record of the multiple user inputs including an order of entry of the multiple user inputs; and transferring the files between the workstation and the storage location in conformity with the modified collection of files.
 2. The computer-performed method of claim 1, further comprising transferring the template to the workstation from an administrative server.
 3. The computer-performed method of claim 2, further comprising selecting the template in conformity with identifying information associated with the workstation or a user providing the user input, and wherein the transferring transfers the selected template to the workstation from a server.
 4. The computer-performed method of claim 2, further comprising: transferring a template update to the workstation subsequent to the transferring the template to the workstation, the accepting of multiple user inputs and the storing a record, and updating the local template according to the template update; retrieving the record of the multiple user inputs; modifying the updated template according the record of the multiple user inputs, wherein the multiple user inputs are applied according to the order of entry stored in the record; and updating the local template according to the modified updated template.
 5. The computer-performed method of claim 2, further comprising receiving an object specifying an administrative override at the workstation, whereby at least one file specified by the accepting multiple user inputs is excluded from or included in the modified collection of files in accordance with the administrative override, and wherein the transferring is performed in further conformity with exclusions or inclusions in the modified collection of files made by the administrative override.
 6. The computer-performed method of claim 1, further comprising detecting a media type or location of the storage location, and selectively including files in or excluding files from the modified collection of files used by the transferring in conformity with the detected media type or location of the storage location.
 7. A computer system comprising a workstation processor for executing workstation program instructions and a memory coupled to the processor for executing the workstation program instructions, wherein the workstation program instructions include workstation program instructions for selecting files and/or configuration entries for backup, migration, restoration or synchronization, wherein the workstation program instructions comprise program instructions for: reading a template specifying one or more applications, wherein a collection of files is specified for transfer between a workstation and a storage location for each of the one or more applications; accepting multiple user inputs modifying the collection of files to produce a local template specifying a modified collection of files; storing a record of the multiple user inputs including an order of entry of the multiple user inputs; and transferring the files between the workstation and the storage location in conformity with the modified collection of files.
 8. The computer system of claim 7, further comprising an administrative server coupled to the workstation processor, wherein the administrative server includes a server processor coupled to a server memory for storing server program instructions for execution by the server processor, wherein the server program instructions comprise program instructions for transferring the template to the workstation from an administrative server.
 9. The computer system of claim 8, wherein the server program instructions further comprise program instructions for selecting the template in conformity with identifying information associated with the workstation or a user providing the user input, and wherein the server program instructions for transferring transfers the selected template to the workstation from a server.
 10. The computer system of claim 8, wherein the server program instructions further comprise program instructions for transferring a template update to the workstation subsequent to the transferring the template to the workstation, and wherein the workstation program instructions further comprise program instructions for: retrieving the record of the multiple user inputs; modifying the updated template according the record of the multiple user inputs, wherein the multiple user inputs are applied according to the order of entry stored in the record; and updating the local template according to the modified updated template.
 11. The computer system of claim 8, wherein the workstation program instructions further comprise program instructions for receiving an object specifying an administrative override, whereby at least one file specified by a user input received by the program instructions for accepting multiple user inputs is excluded from or included in the modified collection of files in accordance with the administrative override, and wherein the program instructions for transferring transfer the files in further conformity with exclusions or inclusions in the modified collection of files made by the administrative override.
 12. The computer system of claim 7, wherein the workstation program instructions further comprise program instructions for: detecting a media type or location of the storage location; and selectively including files in or excluding files from the modified collection of files used by the program instructions for transferring in conformity with the detected media type or location of the storage location.
 13. A computer program product comprising computer-readable storage media encoding workstation program instructions for execution on a workstation computer system, wherein the workstation program instructions include workstation program instructions for selecting files and/or configuration entries for backup, migration, restoration or synchronization, wherein the workstation program instructions comprise program instructions for: reading a template specifying one or more applications, wherein a collection of files is specified for transfer between a workstation and a storage location for each of the one or more applications; accepting multiple user inputs modifying the collection of files to produce a local template specifying a modified collection of files; storing a record of the multiple user inputs including an order of entry of the multiple user inputs; and transferring the files between the workstation and the storage location in conformity with the modified collection of files.
 14. The computer program product of claim 13, wherein the workstation program instruction further comprise program instructions for receiving the template from an administrative server.
 15. The computer program product of claim 14, wherein the workstation program instructions further comprise program instructions for: receiving a template update from the administrative server; retrieving the record of the multiple user inputs; modifying the updated template according the record of the multiple user inputs, wherein the multiple user inputs are applied according to the order of entry stored in the record; and updating the local template according to the modified updated template.
 16. The computer program product of claim 14, wherein the workstation program instructions further comprise program instructions for receiving an object specifying an administrative override, whereby at least one file specified by a user input received by the program instructions for accepting multiple user inputs is excluded from or included in the modified collection of files in accordance with the administrative override, and wherein the program instructions for transferring transfer the files in further conformity with exclusions or inclusions in the modified collection of files made by the administrative override.
 17. The computer program product of claim 13, wherein the workstation program instructions further comprise program instructions for: detecting a media type or location of the storage location; and selectively including files in or excluding files from the modified collection of files used by the program instructions for transferring in conformity with the detected media type or location of the storage location.
 18. A computer program product comprising computer-readable storage media encoding server program instructions for execution on a server computer system, wherein the server program instructions include server program instructions for maintaining templates of files and/or configuration entries for backup, migration, restoration or synchronization associated with applications or sets of applications, wherein the server program instructions comprise program instructions for: transferring the templates to a workstation computer system; and receiving a transfer of files from the workstation computer system for storage in a storage location managed by the server computer system, wherein the transfer of files is specified in part by one or more of the templates and in part by modifications made at the workstation computer system.
 19. The computer program product of claim 18, wherein the server program instructions further include program instructions for: determining identifying information associated with the workstation or a user of the workstation computer system; and selecting particular ones of the templates for transfer by the server program instructions for transferring in conformity with the determined identifying information.
 20. The computer program product of claim 18, wherein the server program instructions further include program instructions for transferring administrative overrides to the workstation computer system, and wherein the transfer of files is further specified by the modifications made at the workstation computer system as qualified by the administrative overrides. 